Videos:
https://open.fing.edu.uy/courses/fsi/3/
https://open.fing.edu.uy/courses/fsi/4/
https://open.fing.edu.uy/courses/fsi/5/
Diapositivas:
[[criptografia_aplicada.pdf]]
Se llama criptosistema al conjunto de:
Es el estudio de métodos para obtener el significado de la información que está cifrada.
Es la ciencia de descifrar códigos, decodificar secretos, violar esquemas de autenticación y romper protocolos criptográficos.
No importa que tiempo o poder de cálculo se disponga, el cifrado no podrá ser quebrado ya que no hay suficiente información para determinar de forma única el correspondiente texto plano.
Transmisor y receptor deben compartir una “clave” de al menos el mismo largo del texto plano a cifrar.
Los bits de la clave deben ser elegidos aleatoriamente de forma independiente.
Si
Dado un poder de recursos computacionales, el tiempo necesario de cálculo esperado para quebrar un código es más grande que el tiempo de vida del mensaje.
Los algoritmos simétricos utilizan la misma clave para cifrar y descifrar la información.
A la clave se le denomina “clave secreta”, “llave secreta”, “secreto compartido” (Secret-Key o shared key en inglés).
El cifrado en bloque procesa el mensaje para cifrar o descifrar en bloques de tamaño fijo.
En general querremos cifrar datos que no son del tamaño de un bloque. Esto nos lleva a definir los llamados “modos de operación”, que nos dicen cómo cifrar un conjunto de bloques que forman un mensaje.
El cifrado en stream lo procesa de a bit o byte.
Los métodos asimétricos, conocidos como de clave pública, se basan en encontrar un criptosistema donde se tienen dos claves distintas para cifrar y descifrar, y es computacionalmente imposible obtener la clave de descifrado (
Los criptosistemas de clave pública nunca pueden brindar seguridad incondicional:
El adversario puede cifrar cualquier texto plano (ya que dispone de la clave de cifrado) y verificar si alguno coincide con el texto cifrado.
-> Eventualmente, romperá el cifrado.
Para realizar una firma digital, podemos (simplificadamente) cifrar el mensaje con nuestra clave privada.
Para validar la firma, solo hay que descifrar con la clave pública.
Los algoritmos de cifrado asimétricos son mucho más lentos que los algoritmos simétricos.
Usualmente se utilizan solamente para autenticación, para firmas, y para el intercambio de claves de sesión para un algoritmo simétrico.
- Secure Hash: un hash que cumple ciertas propiedades básicas de seguridad
- MAC: Message Authentication Code (incluye clave)
Secure Hashes y MACs comparten ciertas características:
Un algoritmo que, dado un mensaje (de largo arbitrario) y una clave (de largo fijo), produce un bloque de bits de largo fijo
Parecido a hashes, salvo por la clave
Comparten propiedades y ya hay bastante desarrollo en Hashing.
Se probó la relación entre la seguridad de HMAC y el hash usado.
Existen, hay varias implementaciones.
Se pretende diseñar un método digital equivalente a la firma manual de un documento.
Lo principal es poder verificar la autoría de la firma, además de cuándo fue hecha.
Un sistema de CAs (certification authorities), opcionalmente RAs (autoridades de registro) y otros servidores y agentes, que realizan algún subconjunto de las funciones de:
Documento firmado por una CA (autoridad de certificación) que contiene diversos datos, al menos:
Me permite asociar la clave pública con la identidad presente en el certificado.
O sea, permite la distribución de claves públicas de forma confiable.
Si tengo la clave pública de la CA, puedo verificar la firma de la CA.
Formato más usado.
Esquema simplificado del certificado:
Cómo pueden confiar mutuamente dos usuarios?
Certificados tienen un período de validez.
Además, puede ser necesario forzar su expiración antes:
Clase particular de protocolos de autenticación. Usado como soporte de otras operaciones más complejas.
Dos entidades (principales) que quieren comunicarse utilizan un “tercero confiable”.
Sigue el esquema básico discutido en la slide anterior pero usa nonces en lugar de timestamps.
Problema: B tiene que asumir que la clave
Sirve para codificar cualquier tipo de archivo, texto plano o no.
Manera mas simple de detectarlo: si en la tabla de local de ARP, hay dos IPs distintas con el mismo MAC.
A desea comunicarse con B (no tienen conocidos en común y no intercambian fingerprint's).
C quiere interceptar la comunicación. Para iniciar la comunicación, A solicita a B su clave pública. B envía su clave a A por un canal público. C es capaz de interceptarla. C envía a A su clave pública. A, creyendo que la clave pública recibida es de B, cifra un mensaje con la clave de C y la envía a B. C intercepta nuevamente, descifra con su clave privada; vuelve a cifrar el mensaje con la clave de B y lo re-enviaría a B. Cuando B lo reciba, cree que proviene de A.
Es una herramienta de cifrado y firmas digitales.
Usos:
Las claves públicas pueden ser compartidas con otros usuarios de muchas maneras, un ejemplo de ello es depositándolas en los servidores de claves o en "fiestas" de firmado.
GPG requiere importar una clave pública de un tercero para poder firmarla.
Herramientas de administración y bibliotecas relacionadas con criptografía.
Usos:
OpenSSL usa el modelo de confianza "Infraestructura de Clave Publica" (PKI). No requiere tener firmas de mas entidades además de la certificadora.
"Message-Digest Algorithm 5". Genera un resumen de 128 bits expresado comúnmente como una cadena hexadecimal.
Se usa comúnmente para:
No tiene resistencia fuerte a colisiones. Se sigue usando porque no todas los usos necesitan dicha resistencia (por ejemplo, comprobaciones de intregridad).